# Лекция: Работа с датами в Java

В Java для работы с датами и временем используются классы `LocalDate`, `LocalTime` и `LocalDateTime` из пакета `java.time`.

## Создание даты и времени

```java
LocalDate date = LocalDate.now(); // текущая дата
LocalTime time = LocalTime.now(); // текущее время
LocalDateTime dateTime = LocalDateTime.now(); // текущая дата и время
```

## Получение и изменение компонентов даты и времени

```java
int year = date.getYear(); // год
int month = date.getMonthValue(); // месяц
int day = date.getDayOfMonth(); // день

LocalDate nextDay = date.plusDays(1); // следующий день
LocalTime nextHour = time.plusHours(1); // следующий час
```

## Форматирование и разбор даты и времени

```java
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
String text = dateTime.format(formatter); // форматирование даты и времени в текст
LocalDateTime parsedDateTime = LocalDateTime.parse(text, formatter); // разбор текста в дату и время
```

---

# Практические задания

1. **Выведите текущую дату.** (Сложность: 1/5)
```java
LocalDate date = LocalDate.now();
System.out.println(date);
```

2. **Выведите текущее время.** (Сложность: 1/5)
```java
LocalTime time = LocalTime.now();
System.out.println(time);
```

3. **Выведите текущую дату и время в формате "dd.MM.yyyy HH:mm:ss".** (Сложность: 2/5)
```java
LocalDateTime dateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
String text = dateTime.format(formatter);
System.out.println(text);
```

4. **Создайте дату, соответствующую вашему дню рождения, и выведите ее.** (Сложность: 2/5)
```java
LocalDate birthday = LocalDate.of(2000, 1, 1);
System.out.println(birthday);
```

5. **Создайте дату и время, соответствующие новому году (1 января следующего года в полночь), и выведите их.** (Сложность: 3/5)
```java
LocalDateTime newYear = LocalDateTime.of(LocalDate.now().getYear() + 1, 1, 1, 0, 0);
System.out.println(newYear);
```